Interview programming for an HVAC controller

ABSTRACT

Controllers and methods are disclosed for aiding a user in programming a schedule of a programmable controller. In an illustrative embodiment, a guided programming routine can be activated by a user, which then guides a user through two or more screens that are designed to collect sufficient information from the user to generate and/or update at least some of the schedule parameters of the controller.

PRIORITY STATEMENT

This is a continuation of U.S. patent application Ser. No. 13/413,604, entitled “Interview Programming For an HVAC Controller”, filed Mar. 6, 2012, now U.S. Pat. No. 8,903,552, which is a continuation of U.S. patent application Ser. No. 12/700,672, entitled “Interview Programming For an HVAC Controller”, filed Feb. 4, 2010, now U.S. Pat. No. 8,219,251, which is a continuation of U.S. patent application Ser. No. 12/424,931, entitled “HVAC Controller With Guided Schedule Programming”, filed Apr. 16, 2009, now U.S. Pat. No. 8,170,720, which is a continuation of U.S. patent application Ser. No. 11/421,833, entitled “Natural Language Installer Setup For Controller”, filed Jun. 2, 2006, now U.S. Pat. No. 7,634,504, which is a continuation-in-part of U.S. patent application Ser. No. 10/726,245, entitled “Controller Interface With Interview Programming”, filed on Dec. 2, 2003, now U.S. Pat. No. 7,181,317.

FIELD

The present invention relates generally to the field of programmable controllers for homes and/or buildings and their related grounds. More specifically, the present invention relates to simplified interfaces for such controllers having interview programming capabilities.

BACKGROUND

Controllers are used on a wide variety of devices and systems for controlling various functions in homes and/or buildings and their related grounds. Some controllers have schedule programming that modifies device parameter set points as a function of date and/or time. Some such device or system controllers that utilize schedule programming for controlling various functions in homes and/or buildings and their related grounds include, for example, HVAC controllers, water heater controllers, water softener controllers, security system controllers, lawn sprinkler controllers, and lighting system controllers.

HVAC controllers, for example, are employed to monitor and, if necessary, control various environmental conditions within a home, office, or other enclosed space. Such devices are useful, for example, in regulating any number of environmental conditions with a particular space including for example, temperature, humidity, venting, air quality, etc. The controller may include a microprocessor that interacts with other components in the system. For example, in many modern thermostats for use in the home, a controller unit equipped with temperature and humidity sensing capabilities may be provided to interact with a heater, blower, flue vent, air compressor, humidifier and/or other components, to control the temperature and humidity levels at various locations within the home. A sensor located within the controller unit and/or one or more remote sensors may be employed to sense when the temperature or humidity reaches a certain threshold level, causing the controller unit to send a signal to activate or deactivate one or more components in the system.

The controller may be equipped with an interface that allows the user to monitor and adjust the environmental conditions at one or more locations within the building. With more modern designs, the interface typically includes a liquid crystal display (LCD) panel inset within a housing that contains the microprocessor as well as other components of the controller. In some designs, the interface may permit the user to program the controller to activate on a certain schedule determined by the user. For example, the interface may include a separate menu routine that permits the user to change the temperature at one or more times during a particular day. Once the settings for that day have been programmed, the user can then repeat the process to change the settings for the other remaining days.

With more modern designs, the programmable controller may include a feature that allows the user to set a separate schedule for weekday and weekend use, or to copy the settings for a particular day and then apply them towards other selected days of the week. While these designs allow the user to copy settings from one day to another, a number of steps are often required to establish a program, adding to the complexity of the interface. In some cases, the interface may not permit the user to select multiple days outside of the normal weekday/weekend scheme. In other cases, the interface is simply too complex to be conveniently used to program a temperature scheme and is simply by-passed or not programmed by the user. Accordingly, there is an ongoing need in the art to decrease the time and complexity associated with programming a multi-day schedule in a programmable controller.

During the installation process, the steps required to program the controller to operate with other system components can also add to the time and complexity associated with configuring the controller. Typically, programming of the controller is accomplished by entering in numeric codes via a fixed segment user interface, by manually setting jumper switches on a circuit board, or by adjusting screws or potentiometers on a circuit board. In some cases, the codes or settings used to program the controller are obtained from a manual or table which must be consulted by the installer during the installation process. For example, to configure an HVAC system having a multistage heat pump, the controller may require the installer to enter a numeric or alphanumeric code (e.g. 91199) from a manual or table in order to program the controller to properly operate the various stages of the heat pump. Such process of referring to a manual or table of codes is not often intuitive to the user, and requires the user to store the manual in a safe place for subsequent use. Accordingly, there is also an ongoing need in the art to decrease the time and complexity associated with programming the controller during the installation process.

SUMMARY

Generally, the present invention pertains to simplified interfaces for controllers having interview programming capabilities.

In one illustrative embodiment, a method of programming a schedule of a controller having a user interface is described. The illustrative method includes the steps of providing one or more interview questions to a user via the user interface; accepting one or more user responses to the one or more interview questions from the user via the user interface; and creating and/or modifying or building a schedule based on the user responses.

In another illustrative embodiment, a method of programming configuration information within a controller is further described. An illustrative method can include the steps of providing one or more interview questions to a user via a user interface, prompting the user to selected between at least two answers simultaneously displayed on the user interface, accepting one or more user responses to the interview questions via the user interface, and modifying the operational parameters of the controller and/or one or more components controlled by the controlled based at least in part on the user responses. The interview questions can include at least one question relating to the installation or setup of the controller as well as any components controlled by the controller.

An illustrative controller having interview programming capabilities can include an interview question generator adapted to generate a number of interview questions relating to the installation or setup of the controller and/or any components controlled by the controller, a user interface including a display screen adapted to display interview questions to a user along with at least two answers for each interview question, and a memory unit for storing operational parameters within the controller based at least in part on the user responses to the interview questions.

The above summary of the present invention is not intended to describe each disclosed embodiment or every implementation of the present invention. The Figures, Detailed Description and Examples which follow more particularly exemplify these embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention may be more completely understood in consideration of the following detailed description of various embodiments of the invention in connection with the accompanying drawings, in which:

FIG. 1 is a flow diagram of an illustrative HVAC interview program;

FIG. 2 is a block diagram of the illustrative HVAC interview program shown in FIG. 1;

FIG. 3 is a flow diagram of another illustrative HVAC interview program;

FIG. 4A is a block diagram of the illustrative HVAC interview program shown in FIG. 3;

FIG. 4B is an illustrative partial block diagram of the block diagram shown in FIG. 4A;

FIG. 5 is a flow diagram of another illustrative HVAC interview program;

FIG. 6 is a block diagram of the illustrative HVAC interview program shown in FIG. 5;

FIGS. 7A-C are flow diagrams of another illustrative HVAC interview program;

FIGS. 8A-T are schematic drawings of an illustrative HVAC interface showing an embodiment of the flow diagram of the illustrative HVAC interview program shown in FIG. 7;

FIG. 9 is a block diagram of an illustrative HVAC system including a programmable controller having interview capabilities for configuring one or more HVAC components;

FIG. 10 is a block diagram showing the controller and user interface of FIG. 9;

FIG. 11 is a flow diagram showing several illustrative interview questions and answers that can be provided by the interview question generator of FIG. 10;

FIG. 12 is a flow diagram of an illustrative method of programming configuration information within a controller; and

FIGS. 13A-13J are schematic drawings of an illustrative user interface showing an illustrative implementation of the flow diagram depicted in FIG. 12.

While the invention is amenable to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and will be described in detail. It should be understood, however, that the intention is not to limit the invention to the particular embodiments described. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

DETAILED DESCRIPTION

The following description should be read with reference to the drawings, in which like elements in different drawings are numbered in like fashion. The drawings, which are not necessarily to scale, depict selected embodiments and are not intended to limit the scope of the invention. Although examples of construction, dimensions, and materials are illustrated for the various elements, those skilled in the art will recognize that many of the examples provided have suitable alternatives that may be utilized.

Generally, the present invention pertains to simplified interfaces for controllers having interview programming capabilities. These controllers can be used in a variety of systems such as, for example, HVAC systems, water heater systems, water softener systems, sprinkler systems, security systems, lighting systems, and the like. The Figures depict HVAC controllers. While the present invention is not so limited, an appreciation of various aspects of the invention will be gained through a discussion of the examples provided below.

FIG. 1 is a flow diagram of an illustrative HVAC interview program 100. The flow diagram starts at a normal thermostat operation block 110. Normal thermostat operation block 110 can be an initial parameter setting operation or a modification of parameter settings. Interview scheduling block 120, 130 provides one or more interview questions to a user via the user interface. The user interface can accept one or more responses to the one or more interview questions from the user via the user interface. The schedule is then built or modified, in some cases by adding or modifying one or more schedule parameters 140, 150, based on the user responses provided via the user interface. Once the schedule parameters 140, 150 are modified, the controller can return to the normal operation block 110, and follow the new schedule.

In some embodiments, the interview scheduling blocks 120 and 130 can provide interview questions that elicit an affirmative (e.g., “yes”) or negative (e.g., “no”) user response. Alternatively, or in addition, the interview scheduling blocks 120, and 130 can provide include interview questions that allow a user to select one (or more) answers from a predetermined list of answers.

In some embodiments, these interview questions can solicit information from the user regarding the grouping of the controller set points entered or the temporal relationship of the controller set points such as, for example, the interview question may ask “Do you want the schedule to apply to every day of the week?”, requiring the user to respond with a “YES” or “NO” answer. The interview scheduling block 120 preferably includes questions that are natural language questions, which may be phrases that have one, two, three, four, five, six, or seven or more words, although this is not required in all embodiments.

Alternatively, or in addition, interview scheduling block 130 can provide interview questions that require a numerical user response. For example, these interview questions can solicit information from the user regarding the specific time and temperature set points for each grouping of controller set points solicited by the interview block 120 described above. Interview block 130 can provide a question such as, for example, “What is a comfortable sleeping temperature in the winter?”, requiring the user to respond with a numerical temperature answer. Like interview schedule block 120 above, interview scheduling block 130 can include questions that are natural language questions, which may be phrases that have one, two, three, four, five, six, or seven or more words, although this is not required in all embodiments.

The interview scheduling blocks 120 and 130 can provide one or more interview questions about, for example, which weekdays will have the same schedule?, when a first person wakes up?, when a last person goes to sleep?, when a last person leaves during the day?, when a first person arrives home?, what a comfortable temperature is when heat is on?, what a comfortable temperature is when air conditioning is on?, what a comfortable sleeping temperature is in summer?, and/or what a comfortable sleeping temperature is in winter?

Alternatively, or in addition, the interview scheduling blocks 120 and 130 may provide one or more interview questions that provide a plurality of predetermined answers or responses (e.g., multiple choice format) where the user selects an answer or response. For example, the interview question may provide a question such as, “What type of schedule do you desire?” In this illustrative embodiment, a series of predetermined responses or answers can be provided such as, “Every day of the week is the same,” “Weekdays are the same and Saturday/Sunday is the same,” “Weekday are the same and Saturday/Sunday is different,” “Each Weekday is different and Saturday/Sunday is the same,” and “Each day of the week is different.”

Alternatively, or in addition, once an initial schedule has been built, the interview scheduling blocks 120, and 130 can display a previous answer that was accepted by the user interface based on the prior built schedule. This illustrative feature can provide the user with a convenient option to select and alter only the schedule parameters 140, 150 that the user desires to modify. This feature can be utilized in all illustrative embodiments described herein, however it is not required.

FIG. 2 is a block diagram of the illustrative HVAC controller with an illustrative interview function similar to that shown in FIG. 1. Controller 200 includes a control module 210 that can be a microprocessor or the like. The control module 210 communicates with a user interface 220, and can include an interview question generator 225, a response acceptor 240 and a programmable schedule 250. The control module 210 can also generate a control signal 260 to a device (not shown), such as an HVAC system or device.

In an illustrative embodiment, the interview question generator 225 provides interview questions, such as those described above, to the user interface 220. The user interface 220 can be any form of user interface such as, for example, a physical interface including a touchscreen, an LCD with buttons, and/or an aural interface including a speaker and microphone, or any other suitable user interface. A user can activate the interview question generator 225 by any suitable mechanism, such as by pressing a schedule button on a touchscreen of the user interface 220. Alternatively, or in addition, the controller 210 may activate the interview question generator 225 on its own, such as when it believes additional scheduling information is needed or might otherwise be desired. In response to questions posed by the interview question generator 225, the user can enter one or more user responses into the user interface 220. The response acceptor 240 accepts the user responses and provides the response to the programmable schedule 250. In some embodiments, the programmable schedule 250 has a number of time and temperature set points that can be entered or modified by the response acceptor 240. Once the schedule is built and/or modified, a control signal 260 is generated by the control module 210 based on the programmable schedule 250.

FIG. 3 is a flow diagram of another illustrative HVAC interview program 300. The flow diagram starts at a normal thermostat operation block 310. Normal thermostat operation block 310 can be an initial parameter setting operation or a modification of parameter settings. Interview scheduling block 325 provides one or more interview questions to a user via a user interface. The user interface then accepts one or more responses to the one or more interview questions from the user via the user interface. A user response translator 360 translates the one or more user responses to form a translated response. One or more schedule parameters 370 are then modified based on the translated responses from the response translator 360. Once the schedule parameters 370 are modified, the controller can return to the normal operation block 310.

In some embodiments, the interview scheduling block 325 includes interview questions that require an affirmative (e.g., “yes”) or negative (e.g., “no”) user response. In addition, the interview questions can solicit information from the user regarding the grouping of the controller set points entered or the temporal relationship of the controller set points. For example, the interview question may ask “Do you want the schedule to apply to every day of the week?”, requiring the user to respond with a “YES” or “NO” answer. The interview scheduling block 325 can include questions that are natural language questions such as, for example, phrases that can have one, two, three, four, five, six, or seven or more words.

In an illustrative embodiment, interview scheduling block 325 may also provide interview questions that require a numerical user response. These interview questions can solicit information from the user regarding the specific time and temperature set points for each grouping of controller set points solicited by the interview block 325 described above. The interview block 325 can provide a question such as, for example, “What is a comfortable sleeping temperature in the winter?”, requiring the user to respond with a numerical temperature answer. The interview scheduling block 325 can include questions that are natural language questions such as, for example, phrases that can have one, two, three, four, five, six, or seven or more words.

In the illustrative embodiment, the interview scheduling block 325 can also provide one or more interview questions related to, for example, which weekdays will have the same schedule?, when a first person wakes up?, when a last person goes to sleep?, when a last person leaves during the day?, when a first person arrives home?, what a comfortable temperature is when heat is on?, what a comfortable temperature is when air conditioning is on?, what a comfortable sleeping temperature is in the summer?, or what a comfortable sleeping temperature is in the winter?

The response translator 360 can translate the user responses to create appropriate schedule parameters 370 that help define the schedule of the controller. That is, the response translator 360 applies the user responses to one or more interview questions to establish the controller schedule. For example, the response translator 360 can take an affirmative user response to the interview question, “Do you want the same schedule for Saturday and Sunday?” and correlate with the interview question, “What temperature do you like when the heat is on?” to establish the schedule parameters for the heating temperature during at least selected periods on Saturday and Sunday.

Alternatively, or in addition, the interview scheduling block 325 may provide one or more interview questions that provide a plurality of predetermined answers or responses (e.g., multiple choice format) where the user selects an answer or response. For example, the interview question may provide a question such as, “What type of schedule do you desire?” In this illustrative embodiment, a series of predetermined responses or answers can be provided such as, “Every day of the week is the same,” “Weekdays are the same and Saturday/Sunday is the same,” “Weekday are the same and Saturday/Sunday is different,” “Each Weekday is different and Saturday/Sunday is the same,” and “Each day of the week is different.”

FIG. 4A is a block diagram of the illustrative HVAC controller with an illustrative interview function similar to that shown in FIG. 3. Controller 400 includes a control module 410 that can be a microprocessor or the like. The control module 410 communicates with a user interface 420, and may include an interview question generator 425, a response acceptor 440, a response translator 460, and a programmable schedule 470. The control module 410 can also generate a control signal 465 to a device (not shown), such as an HVAC system or device.

In the illustrative embodiment, the interview question generator 435 provides interview questions, such as those described above, to the user interface 420. The user interface 420 can be any form of user interface such as, for example, a physical interface including a touchscreen, an LCD with buttons, and/or an aural interface including a speaker and microphone, or any other suitable user interface. A user can activate the interview question generator 435 by any suitable mechanism, such as by pressing a mechanical schedule button on the controller, touching an appropriate region of a touchscreen, voice activation, etc. Alternatively, or in addition, the controller 410 may activate the interview question generator 425 on its own, such as when it believes additional scheduling information is needed or might otherwise be desired. In response to questions posed by the interview question generator 425, the user can enter one or more user responses into the user interface 420. The response acceptor 440 accepts the user responses and provides the response to the response translator 460. The response translator 460 provides a translated response to a programmable schedule 470. In some embodiments, the programmable schedule 470 has a number of time and temperature set points that can be entered or modified by the response translator 470. Once the schedule is built and/or modified a control signal 465 is generated by the control module 410 based on the programmable schedule 470.

FIG. 4B is an illustrative partial block diagram of the block diagram shown in FIG. 4A showing one embodiment of the interaction of the interview question generator 425, response acceptor 440, response translator 460 and programmable schedule 470. The illustrative programmable schedule 470 has a plurality of cells such as, for example, a Saturday wake cell 471, a Sunday wake cell 472, a Saturday sleep cell 473, and a Sunday sleep cell 474. In this embodiment, each cell 471, 472, 473, 474 may include a number of schedule parameters such as, for example, a start time, a heat temperature and a cool temperature.

Interview questions 425 are posed to the user. As shown in the illustrative example: an interview question 425 of “Same schedule for Saturday and Sunday?” elicits an user response 440 of “YES”; an interview question 425 of “For the weekend, is someone home all day?” elicits an user response 440 of “YES”; an interview question 425 of “What time does the first person wake up?” elicits an user response 440 of “7:00 a.m.”; an interview question 425 of “What time does the last person go to sleep?” elicits an user response 440 of “10:00 p.m.”; an interview question 425 of “What temperature is comfortable when the heat is on?” elicits an user response 440 of “72° F.”; an interview question 425 of “What temperature is comfortable when the air conditioning is on?” elicits an user response 440 of “68° F.”; an interview question 425 of “What is a comfortable sleeping temperature in summer?” elicits an user response 440 of “67° F.”; and an interview question 425 of “What is a comfortable sleeping temperature in winter?” elicits an user response 440 of “65° F.”.

In the illustrative embodiment, the response translator 460 accepts the user responses provided in block 440. The response translator 460 then builds and/or modifies the programmable schedule 470. In the illustrative embodiment, each cell 471, 472, 473, 474 includes a start time, a heat temperature and a cool temperature. The Saturday wake cell 471 and the Sunday wake cell 472 has a start time of 7:00 a.m., a heat temperature of 72° F., and a cool temperature of 68° F., all of the times and temperatures are provided by the response translator. The Saturday sleep cell 473 and the Sunday sleep cell 474 has a start time of 10:00 p.m., a heat temperature of 65° F., and a cool temperature of 67° F., all of the times and temperatures are provided by the response translator.

In this illustrative embodiment, the response translator 460 takes a plurality of user responses 440 to the interview questions 425 and builds and/or modifies a plurality of schedule parameters. The Saturday and Sunday Leave and Return cells 475, 476, 477, and 478 are ignored and/or zeroed out by the response translator 460 since they are not required based on the user responses 425 for this example.

FIG. 5 is a flow diagram of another illustrative HVAC interview program 500. The flow diagram starts at a normal thermostat operation block 510. Normal thermostat operation block 510 can be an initial parameter setting operation or a modification of parameter settings. Interview scheduling block 525 provides one or more interview questions to a user via a user interface. The user interface then accepts one or more responses to the one or more interview questions from the user via the user interface. A sufficient information block 560 determines if enough information has been solicited from the user response to the interview questions sufficient to build or modify the schedule at block 570. If not, the interview scheduling block 525 provides another interview question to the user via the user interface. If the sufficient information block 560 determines that enough information has been solicited, then the schedule is built or modified by the modify schedule block 570. Once the schedule is built or modified by the modify schedule block 570, the controller can return to the normal operation block 510.

The sufficient information block 560 can, for example, help ensure that a sufficient number of schedule parameters are defined, such as, for example, a start time, a heating temperature and a cooling temperature for a particular time period such as, for example, a specific day or group of days wake period, leave period, return period and/or sleep period, as shown in FIG. 4B.

In some embodiments, the interview scheduling block 525 provides a number of predetermined interview questions in a predetermined sequential order. The number of questions or queries may be adapted to collect information from the user responses to generate at least a portion of the schedule parameters.

Like above, the interview scheduling block 525 can include interview questions that require an affirmative (e.g., “yes”) or negative (e.g., “no”) user response. For example, interview scheduling block 525 can provide interview questions solicit information from the user regarding the grouping of the controller set points entered or the temporal relationship of the controller set points such as, for example, “Do you want the schedule to apply to every day of the week?”, requiring the user to respond with a “YES” or “NO” answer. The interview scheduling block 525 can include questions that are natural language questions which can be phrases that have one, two, three, four, five, six, or seven or more words in length.

Alternatively or in addition, interview scheduling block 525 can provide interview questions that require a numerical user response. For example, these interview questions can solicit information from the user regarding the specific time and temperature set points for each grouping of controller set points solicited by the interview block 525 described above. The interview block 525 can provide a question such as, for example, “What is a comfortable sleeping temperature in the winter?”, requiring the user to respond with a numerical temperature answer. Again, the interview scheduling block 525 can include questions that are natural language questions that can be phrases which can be one, two, three, four, five, six, seven or more words, although this is not required in all embodiments.

The interview scheduling block 525 may also provide one or more interview questions about, which weekdays will have a same schedule?, when a first person wakes up?, when a last person goes to sleep?, when a last person leaves during the day?, when a first person arrives home?, what a comfortable temperature is when heat is on?, what a comfortable temperature is when air conditioning is on?, what a comfortable sleeping temperature is in the summer?, or what a comfortable sleeping temperature is in the winter?

Alternatively, or in addition, the interview scheduling block 525 may provide one or more interview questions that provide a plurality of predetermined answers or responses (e.g., multiple choice format) where the user selects an answer or response. For example, the interview question may provide a question such as, “What type of schedule do you desire?” In this illustrative embodiment, a series of predetermined responses or answers can be provided such as, “Every day of the week is the same,” “Weekdays are the same and Saturday/Sunday is the same,” “Weekday are the same and Saturday/Sunday is different,” “Each Weekday is different and Saturday/Sunday is the same,” and “Each day of the week is different.”

FIG. 6 is a block diagram of the illustrative HVAC controller with an illustrative interview function similar to that shown in FIG. 5. Controller 600 includes a control module 610 that can be a microprocessor or the like. The control module 610 communicates with a user interface 620, and may include an interview question generator 625, a response acceptor 640 and a programmable schedule 650. The control module 610 can also generate a control signal 660 to a device (not shown), such as an HVAC system or device.

In the illustrative embodiment, the interview question generator 625 provides interview questions, such as those described above, to the user interface 620. The user interface 620 can be any form of user interface such as, for example, a physical interface including a touchscreen, an LCD with buttons, an aural interface including a speaker and microphone, or any other suitable user interface. A user can activate the interview question generator 625 by any suitable mechanism, such as by pressing a schedule button on a touchscreen of the user interface 620. Alternatively, or in addition, the controller 610 may activate the interview question generator 625 on its own, such as when it believes additional scheduling information is needed or might otherwise be desired. In response to the questions posed by the interview question generator 625, the user can enter one or more user responses into the user interface 620. The response acceptor 640 accepts the user responses and provides the responses to the programmable schedule 650 if it determines that sufficient information has been provided by the user responses to establish a program schedule. If not, the response acceptor 640 instructs the interview question generator 625 to provide another interview question to the user via the user interface 620. Once the response acceptor 640 determines that sufficient information has been provided by the user to establish a program schedule 650 the program schedule 650 is built and/or modified. In some embodiments, the programmable schedule 650 has a number of time and temperature set points that can be entered or modified by the response acceptor 640. Once the programmable schedule 650 is built and/or modified, a control signal 660 is generated by the control module 610 based on the programmable schedule 650.

FIGS. 7A-C are flow diagrams of another illustrative HVAC interview program 700. The flow diagram starts at a normal thermostat operation block 710, but this is not required in all embodiments. In the illustrative embodiment, the interview program 700 can be initiated by pressing a program initiation button or key such as, for example, an “EZ Schedule” button.

The program can begin by asking whether the user wants the same schedule to be used for every day of the week, as shown at block 720. If the user responds with a “YES” response, then the program can move to ask context questions for that group of days, as shown at block 725, which may set the schedule for the week assuming the same schedule for every 24 hour period or day. If the user responds with a “NO” response, the program may ask the user if the same schedule applies to both weekend days, Saturday and Sunday, as shown at block 730. If the user responds with a “YES” response, then the program can ask if the user wants two schedules, one for weekdays and one for weekends, as shown at block 735. A “YES” response to block 735 can move the program to asking context questions for a weekend group of days and a weekdays group of days, as shown at block 725, to set the schedule for the week assuming a first schedule for weekend days and a second schedule for weekdays. A “NO” response to block 730 can cause the program to ask whether the user wants three schedules including a weekday schedule, a Saturday schedule, and a Sunday schedule, as shown at block 740. A “YES” response to block 740 moves the program to asking context questions for a week day group of days schedule, a Saturday schedule and a Sunday schedule, as shown at block 725, to set the schedule for the week assuming a first schedule for weekdays, and a second schedule for Saturday and a third schedule for Sundays. A “NO” response to either block 740 or block 735 moves the program to asking the user to group each day of the seven days of the week into similar schedule groupings until all days are assigned to one group, as shown at block 750. The program can ask if all days are assigned at block 755, with a “NO” response returning the user to block 750 to assign a non-assigned day or days until all days have been assigned. Once all days have been assigned to a group, the program moves to asking context questions for each group of days schedule, as shown at block 725, to set the schedule for the each grouping of days assuming a first schedule for a first group, a second schedule for a second group, a third schedule for a third group and so on until all groupings of days are scheduled.

The program 700 can ask a variety of context sensitive question to determine the desired schedule for each grouping of days identified by the program 700 above. For example, and as shown in FIG. 7B, the program 700 can inquire whether someone is home all day, as shown at block 760. If the user enters a “YES” response to block 760, the program can ask when the first person gets and request that the user to enter a wake time, as shown at block 770. Then the program 700 can ask when the last person goes to sleep and request that the user to enter a sleep time, as shown at block 780. If the user enters a “NO” response to block 760, the program can ask when the first person gets up, and request that the user to enter a wake time, as shown at block 761. Then the program can ask what time the first person leaves home and request that the user enter a leave time, as shown at block 762. The program can also ask when the last person gets home for the day, and request the user to enter a return time, as shown at block 763. The program can also ask when the last person goes to sleep, and request that the user enter a sleep time, as shown at block 764. Once all the above information has been entered by the user for each grouping of days, the program may move to an end block 781.

The program 700 can then request information from the user regarding comfortable awake, sleeping and away temperatures. For example, and referring to FIG. 7C, the program can request that the user enter a comfortable temperature when the heat is on, as shown at block 790. The temperature information received in block 790 can be automatically inserted into a program schedule for each grouping of days to set the wake heat and return heat set points. The program can also request that the user enter a comfortable temperature when the air conditioning is on, as shown at block 791. This information can be automatically inserted into a program schedule for each grouping of days to set the wake cool and return cool set points. This illustrative program can also request that the user enter a comfortable summer sleeping temperature, as shown at block 792. This information can be automatically inserted into a program schedule for each grouping of days to set the sleep cool set point. The program can also request that the user enter a comfortable winter sleeping temperature, as shown at block 793. This information can be automatically inserted into a program schedule for each grouping of days to set the sleep heat set point. The program can also request that the user to enter an energy savings offset at block 794. This information can be automatically inserted into a program schedule for each grouping of days to set the leave cool and leave heat set points.

In some embodiments, the program 700 can allow the user to request a schedule review at block 795, which can allow the user to review the built or modified schedule, as shown at block 796. If the user does not wish to review the schedule or when the user is done reviewing the schedule, the program returns to normal thermostat operation block 710 under the newly built or modified schedule.

FIGS. 8A-T are schematic drawings of an illustrative HVAC interface 800 showing an illustrative embodiment of the flow diagram of the HVAC interview program shown in FIGS. 7A-7C. The schematic screen shots are taken in sequential order based on the user selections shown in each screen shot. At FIG. 8A, a user 810 selects an “EZ Schedule” 801 button located on the interface 800 to begin the interview scheduling program.

At FIG. 8B, the program asks the user 810, via the interface 800, if the user 810 wants the same schedule to apply to every day of the week. The user 810 is shown selecting a “NO” response 802.

At FIG. 8C, the program asks the user 810, via the interface 800, if the user 810 wants Saturday and Sunday to follow the same schedule. The user 810 is shown selecting a “YES” response 803.

At FIG. 8D, the program asks the user 810, via the interface 800, to verify the there will be two schedules, one for weekends and a second for weekdays. The user 810 is shown selecting a “YES” response 804.

At FIG. 8E, the program asks the user 810, via the interface 800, whether someone will be home all day on weekdays. The user 810 is shown selecting a “NO” response 805.

At FIG. 8F, the program asks the user 810, via the interface 800, to enter what time the first person wakes up on weekdays. The user 810 is shown pressing an “ENTER” button 806 after selecting a wake time.

At FIG. 8G, the program asks the user 810, via the interface 800, to enter what time the last person leaves the house on weekdays. The user 810 is shown pressing an “ENTER” button 807 after selecting a leave time.

At FIG. 8H, the program asks the user 810, via the interface 800, to enter what time the first person arrives home on weekdays. The user 810 is shown pressing an “ENTER” button 808 after selecting a return time.

At FIG. 8I, the program asks the user 810, via the interface 800, to enter what time the last person goes to sleep on weekdays. The user 810 is shown pressing an “ENTER” button 809 after selecting a sleep time.

At FIG. 8J, the program asks the user 810, via the interface 800, whether someone will be home all day on weekends. The user 810 is shown selecting a “YES” response 811.

At FIG. 8K, the program asks the user 810, via the interface 800, to enter what time the first person wakes up on weekends. The user 810 is shown pressing an “ENTER” button 812 after selecting a wake time.

At FIG. 8L, the program asks the user 810, via the interface 800, to enter what time the last person goes to sleep on weekends. The user 810 is shown pressing an “ENTER” button 813 after selecting a sleep time.

At FIG. 8M, the program asks the user 810, via the interface 800, a comfort question such as, what temperature do you like when the heat is on? The user 810 is shown pressing an “ENTER” button 814 after selecting a desired temperature.

At FIG. 8N, the program asks the user 810, via the interface 800, a comfort question such as, what temperature do you like when the air conditioning is on? The user 810 is shown pressing an “ENTER” button 815 after selecting a desired temperature.

At FIG. 8O, the program asks the user 810, via the interface 800, a comfort question such as, what is a comfortable sleeping temperature in the summer? The user 810 is shown pressing an “ENTER” button 816 after selecting a desired temperature.

At FIG. 8P, the program asks the user 810, via the interface 800, another comfort question such as, what is a comfortable sleeping temperature in the winter? The user 810 is shown pressing an “ENTER” button 817 after selecting a desired temperature.

At FIG. 8Q, the program asks the user 810, via the interface 800, another comfort question such as, what energy saving offset is desired? The user 810 is shown pressing an “ENTER” button 818 after selecting a desired energy saving offset.

At FIG. 8R, the program informs the user 810, via the interface 800, that the schedule has been completed, and may allow the user to view a portion of the schedule or selected day groupings. The user 810 is shown pressing a “VIEW WEEKDAYS” button 819.

At FIG. 8S, the program informs the user 810, via the interface 800, specifics of the selected schedule. The user 810 is shown pressing a “DONE” button 821.

At FIG. 8T, the program displays, via the interface 800, specifics of the currently running schedule.

Referring now to FIG. 9, a block diagram of an illustrative HVAC system including a programmable controller having interview capabilities for configuring one or more HVAC components will now be described. The HVAC system 900 can include a programmable controller 902 in communication with a number of system components that can be activated to regulate various environmental conditions such as temperature, humidity, and air quality levels occurring within the space to be controlled. As shown in FIG. 9, for example, the controller 902 can be connected to a heating unit 904 and cooling unit 906 that can be activated to regulate temperature. The heating unit 904 can include a boiler, furnace, heat pump, electric heater, and/or other suitable heating device. In some embodiments, the heating unit 904 can include a multistage device such as a multistage heat pump, the various stages of which can be controlled by the controller 902. The cooling unit 906 can include an air-conditioner, heat pump, chiller, and/or other suitable cooling device which can likewise be either single staged or multistaged depending on the application.

A ventilation unit 908 such as a fan or blower equipped with one or more dampers can be employed to regulate the volume of air delivered to various locations within the controlled space. A filtration unit 910, UV lamp unit 912, humidifier unit 914, and dehumidifier unit 916 can also be provided in some embodiments to regulate the air quality and moisture levels within the controlled space. One or more local and/or remote sensors 918 can be connected to the controller 902 to monitor temperature or humidity levels inside, and in some cases, outside of the space to be controlled. In some embodiments, the controller 902 can be connected to one or more other controllers 920 such as another HVAC controller for providing multi-zoned climate control. The system components can be directly connected to a corresponding I/O port or I/O pins on the controller 902, and/or can be connected to the controller 902 via a network or the like.

The controller 902 can include a user interface 922 to permit an installer or service technician to input commands for programming the controller 902 to operate with the various system components and any other connected controllers 922. The user interface 922 can include, for example, a touch screen, liquid crystal display (LCD) or dot matrix display, an aural interface including a speaker and microphone, a computer, or any other suitable device for sending and receiving signals to and from the controller 902. Depending on the configuration, the user interface 922 can also include buttons, knobs, slides, a keypad, or other suitable selector means for inputting commands into the controller 902.

FIG. 10 is a block diagram showing the controller 902 and user interface 922 of FIG. 9 in greater detail. As can be further seen in FIG. 10, the controller 902 can include a control module 924 such as a microprocessor/CPU, a storage memory 926, a clock 928, and an I/O interface 930 that connects the controller 902 to the various system components in FIG. 9. An internal sensor 932 located within the controller housing can be used to measure the temperature, humidity levels, and/or other environmental conditions occurring within the controlled space.

During installation, the control module 924 communicates with the user interface 922 to provide the installer with interview questions relating to the configuration of one or more of the system components. In the illustrative embodiment of FIG. 10, the controller 902 includes an interview question generator 934 that prompts the installer to provide feedback to the controller 902 regarding the types of system components to be controlled, the dates and times such components are to be operated, the power or temperature levels in which such components are to be operated, the bandwidth or offsets at which such components are to be operated, the type of space to be controlled, as well as other operating parameters. Activation of the interview question generator 934 can occur, for example, by pressing an installation button on a touchscreen or keypad of the user interface 922. Alternatively, or in addition, the controller 902 may activate the interview question generator 934 on its own when a new system component is connected to the I/O interface 930 or when additional setup information is needed or desired by the controller 902.

Input commands received via the user interface 922 can be fed to a response acceptor 936, which accepts the user responses to the interview questions generated by the interview question generator 934. The response acceptor 936 can be configured to translate the user responses into operation parameters 938 that can be stored within the memory unit 926 along with other information such as prior usage, scheduling parameters, user preferences, etc. The operation parameters 938 can then be used by the controller 902 to generate control signals 940 to operate the various system components in a particular manner.

FIG. 11 is a flow chart showing several illustrative interview questions and answers that can be provided by the interview question generator of FIG. 10. As shown in FIG. 11, once the installation mode has been initiated, the user interface can be configured to prompt the installer to enter a desired language in which to display the interview question and answer queries, as indicated generally by block 1000. For example, the user interface may prompt the installer to select between “English”, “Espanol”, or “Francais” as language choices. The selection of a particular language at block 1000 causes the user interface to subsequently display the interview questions and answers in that selected language.

Once the desired language is chosen, the user interface can be configured to provide interview questions pertaining to the various system components to be installed. At block 1002, for example, the user interface can prompt the installer to select the type of equipment to be controlled by the controller. In certain embodiments, for example, the user interface can prompt the installer to select between a conventional heating/cooling unit, a heat pump, or heat only. Once the type of equipment has been selected, the user interface may then prompt the installer to enter the number of stages of heat and cool to be controlled by the controller, as indicated generally by blocks 1004 and 1006. In some embodiments, the answers provided to the interview question at block 1004 may affect whether the user interface displays a follow-up query at block 1006. For example, if the response to the interview question regarding the number of heat stages at block 1004 is “2”, the interview question generator may assume that there are 2 cooling stages, and thus skip the query at block 1006.

For each stage of heat and cool, the user interface can be configured to prompt the installer to select the number of cycles per hour to be provided by the equipment, as indicated generally by block 1008 and 1010, respectively. At block 1008, for example, the user interface may prompt the installer to select the cycles per hour to be provided by each stage of heating selected at block 1004. If, for example, the installer indicates at block 1004 that the equipment has 3 stages of heating, the user interface can be configured to repeat query block 1008 three separate times for each individual stage to be configured. A similar process can then be performed at block 1010 for each stage of cooling to be controlled by the controller. If at block 1004 the installer indicates that there are “0” stages of heat, the user interface can be configured to skip the query at block 1008. In addition, if at block 1006 the installer indicates that there are “0” stages of cool, or if at block 1002 the installer indicates that the equipment is “Heat Only”, the user interface can be configured to skip the query at block 1010.

In some embodiments, the user interface can be further configured to provide the installer with interview questions and answers that can be used to set other operational parameters within the controller. As indicated generally at block 1012, for example, the user interface can be configured to prompt the installer to select the minimum amount of on time that the equipment operates. The user interface can further prompt the installer to select a lower and/or upper temperature limit at which the system operates, as indicated generally at blocks 1014 and 1016, respectively. If desired, the temperature offset and proportional bandwidth of the system can be further set via query blocks 1018 and 1020, respectively.

Although several exemplary interview questions and answers are illustrated in FIG. 11, it should be understood that the type, number, and ordering of the interview questions and answers provided to the installer may be varied based on the type of equipment to be configured, the user's previous answers to interview questions, the number of stages to be controlled, as well as other factors. In some embodiments, the interview questions and answers can be grouped together to permit the installer to configure a particular system component or components without having to answer interview questions for the remaining system components. If, for example, the installer desires to only configure a newly installed heat pump, the user interface can be configured to provide the installer with interview questions and answers relating to the cooling unit, skipping those queries related to other components not affected by the installation.

FIG. 12 is a flow diagram of an illustrative method 1100 of programming configuration information within a controller. The method 1100 can begin generally at block 1102 in which an installation mode of the controller is activated to permit an installer to configure the controller to operate with one or more system components. Initiation of the installation mode can occur, for example, by the installer selecting an installation mode button on a touchscreen or keypad of the user interface, or automatically when the controller is activated for the first time or when one or more system components are connected to the controller.

Once the installation mode has been initiated, the controller can then be configured to provide one or more interview questions to the installer via the user interface, as indicated generally by block 1104. The interview questions provided can be configured to solicit information from the installer regarding the type and configuration of the various system components to be controlled by the controller. In certain embodiments, for example, the interview questions can include a sequence of interview questions relating to the type of equipment to be controlled, the number of heat stages the equipment has, the number of cooling stages the equipment has, the number of cycles per hour each stage of heating requires, and the number of cycles per hour each stage of cooling requires.

In some embodiments, other interview questions pertaining to the type or configuration of the controller and/or any system components controlled by the controller can be further presented to the installer via the user interface. Examples of other interview questions can include, but are not limited to, the minimum operating time desired to operate the system, whether a pump exercise is to be enabled for any installed heat pumps, the upper temperature limit at which to operate the system, the lower temperature limit at which to operate the system, the temperature offset at which the controller operates, the proportional bandwidth of the equipment, the type and operating times of the ventilation fan employed, the type and rating of the UV lamp employed, and the type and rating of the humidifier or dehumidifier employed. Other interview questions relating to the user's preferences such as the date and time format, daylight savings options, schedule programming options, temperature display options, etc. can also be provided, if desired. It should be understood that the types of interview questions and their ordering will vary depending on the type of equipment to be controlled.

The interview questions may be provided to the installer in the form of natural language questions, which may be phrases having one or more words that prompt the installer to select between one or more answers from a predetermined list of answers. For example, the interview questions can include a question such as “What type of equipment is the thermostat controlling?” In some embodiments, one or more of the interview questions may elicit an affirmative “YES” or “NO” user response. Alternatively, or in addition, one or more of the interview questions can solicit information requiring a numeric or alphanumeric user response.

With certain interview questions, and in some embodiments, the controller can be configured to prompt the installer to select between at least two answers or responses displayed on the display screen of the user interface, as indicated generally by block 1106. For example, in response to the interview question “What type of equipment is the thermostat controlling?”, the user interface can be configured to display the answers “Conventional”, “Heat Pump”, and “Heat Only”, prompting the installer to select the appropriate type of equipment to be installed and/or configured. The user interface can then be configured to accept the user responses to each of the questions and then modify the operational parameters of the controller based on the user responses, as indicated generally by blocks 1108 and 1110, respectively.

In some embodiments, the user interface can be configured to display each of the answers simultaneously on the display screen of the user interface. In such configuration, the selection of a user response at block 1108 can be accomplished by the installer selecting an answer to the interview question from a list of multiple answers graphically displayed on the screen. In those embodiments in which the user interface includes a touchscreen, for example, the selection of a response can be accomplished directly by pressing the desired answer from a choice of answers provided on the screen, causing the controller to store that parameter and cycle to the next interview question in the queue. Alternatively, in those embodiments in which the user interface includes an LCD or dot matrix screen, the selection of the desired answer from the choice of answers can be accomplished via a button, knob, slide, keypad, or other suitable selector means on the user interface.

The user interface can vary the presentation of the interview questions based at least in part on the installer's previous responses to other interview questions. If, for example, the installer selects on the user interface that the type equipment being installed is “Heat Only”, the interview question generator can be configured to skip those questions pertaining to the stages and cycle times for cooling. The ordering of the interview questions can also be varied based on the particular piece of equipment being configured. If, for example, the installation mode at block 1102 is initiated in response to a new piece of equipment connected to the controller, the interview question generator can be configured to present to the installer only those questions pertaining to the new equipment.

The interview question generator can also be configured to suggest a default answer based on any previous responses, based on any previous controller settings, and/or based on settings which are commonly selected for that particular piece of equipment. For example, with respect to the selection of the number of stages for heating, the user interface can be configured to default to a common answer or response of “2” while providing the installer with the ability to select among other numbers of heating stages (e.g., “0”, “1”, “3”, “4”, “5”, “6”, etc.), if desired. The suggestion of a default answer can be accomplished, for example, by highlighting or flashing the answer on the display screen, by moving a selection indicator adjacent to the answer on the display screen, or by other suitable means.

FIGS. 13A-13J are schematic drawings of an illustrative HVAC touchscreen interface 1200 showing an illustrative implementation of the flow diagram depicted in FIG. 12. In a first view depicted in FIG. 13A, the interface 1200 can be configured to display a main installation menu screen 1202 on the display panel 1204, providing the installer with the choice of configuring one or more HVAC system components. The main installation menu screen 1202 can include, for example, a “FULL SET-UP” icon button 1206, a “COMPONENT BASED SET-UP” icon button 1208, and a “MANUAL SET-UP” icon button 1210.

The “FULL SET-UP” icon button 1206 can be selected on the display panel 1204 to permit the installer to fully configure the controller to work with the system components for the first time, or when the installer otherwise desires to cycle through each of the interview questions in sequence. The “COMPONENT BASED SET-UP” icon button 1208, in turn, can be selected to permit the installer to configure only certain system components or to configure the system in a different order than that normally provided by the interface 1200. The “MANUAL SET-UP” icon button 1210 can be selected to permit the installer to configure the controller manually using numeric or alphanumeric codes, if desired.

FIG. 13B is a schematic drawing showing the selection of the “FULL SET-UP” icon button 1206 on the main installation menu screen 1202 of FIG. 13A. As shown in FIG. 13B, the selection of icon button 1206 causes the interface 1200 to display a language setup screen 1212 that prompts the installer to select a desired language format for the remainder of the installation configuration. The interface 1200 can be configured to display, for example, an “ENGLISH” icon button 1214, an “ESPANOL” icon button 1216, and a “FRANCAIS” icon button 1218. Other language choices can also be displayed on the language setup screen 1212, if desired. A “BACK” icon button 1220 and “ENTER” icon button 1222 can be provided on the display panel 1204 to permit the installer to move back to the prior screen or to enter the current setting selected and move forward to the next question in the queue. A “QUIT” icon button 1224 can be provided on the display panel 1204 to permit the installer to quit the installation configuration mode, save any changes made, and then return the controller to normal operation.

FIG. 13C is a schematic view showing the interface 1200 after the selection of the “ENGLISH” icon button 1214 on the language setup screen 1212 of FIG. 13B. As shown in FIG. 13C, once the installer has selected a desired language, the interface 1200 can be configured to display an equipment type screen 1226 allowing the installer to select the type of equipment to be configured. In some embodiments, for example, the equipment type screen 1226 may prompt the installer to select among a “CONVENTIONAL” icon button 1228, a “HEAT PUMP” icon button 1230, or a “HEAT ONLY” icon button 1232 each simultaneously displayed on the display panel 1204.

Once the installer has selected the desired equipment to be installed via the equipment type screen 1226, and as further shown in FIG. 13D, the interface 1200 can be configured to display a screen 1236 prompting the installer to select the number of heat stages to be configured, if any. Several numeric icon buttons 1238 can be provided on the screen 1236 to permit the installer to select the desired number of heat stages to be controlled. If, for example, the equipment to be configured has 2 stages of heating, the installer may select a “2” icon button 1238 a on the screen 1236. Conversely, if the equipment to be configured has no heating stages, the installer may select a “0” icon button 238 b on the display screen 1236, causing the interface 1200 to thereafter skip those interview questions pertaining to heating stages and cycles.

Once the number of heat stages has been configured via screen 1236, and as further shown in FIG. 13E, the interface 1200 can be configured to display another screen 1240 prompting the installer to select the number of cooling stages to be configured, if any. Several numeric icon buttons 1242 can be provided simultaneously on the screen 1240 to permit the installer to select the desired number of cooling stages. If, for example, the equipment to be configured has 2 stages of cooling, the installer may select a “2” icon button 1242 a on the screen 1240. Depending on the response to the previous interview question on screen 1236 of FIG. 13D, the interface 1200 can be configured to default to a particular answer (e.g. “2”) by blinking or flashing the answer on the screen 1240. In some cases, the interface 1240 may assume that the number of cooling stages is the same as the number of heating stages and skip screen 1240 altogether.

FIG. 13F is a schematic view showing the interface 1200 subsequent to the steps of configuring the heating and cooling stages in FIGS. 13D-13E. As shown in FIG. 13F, the interface 1200 can be configured to provide a screen 1244 initially prompting the installer to select a desired number of cycles per hour for the first stage of heating. Several numeric icon buttons 1246 can be provided simultaneously on the screen 1244 to permit the user to select the cycle rate at which the system operates for the particular stage number 1248 displayed on the screen 1244. For the first stage of heating for a two-stage system, for example, the installer may select the “6” icon button 1246 a to operate the first heating stage for six cycles per each hour. Once a response is received for the first heating cycle, the interface 1200 may then prompt the installer to select the number of cycles for the second heating stage, as further shown in FIG. 13G. The process can be repeated one or more times depending on the number of heating stages to be configured.

FIG. 13H is a schematic view showing the presentation of another screen 1250 on the interface 1200 for selecting the cycle rate for each cooling stage to be configured within the controller. Similar to the screen 1244 depicted in FIGS. 13F-13G, the screen 1250 may prompt the installer to initially select a desired number of cycles per hour for the first stage of cooling, and then repeat the interview process for each additional stage to be programmed, if any. Several numeric icon buttons 1252 can be provided simultaneously on the screen 1250 to permit the installer to select the cycle rate at which the system operates for the particular stage number 1254 displayed on the screen 1250. Once the installer has completed configuring each stage of heating and cooling, the interface 1200 can be configured jump to additional interview questions for any other components to be configured, or, alternatively, can exit the routine and return to normal operation using the newly programmed settings.

Once programming is complete, and as further shown in FIG. 13I, the interface 1200 can be configured to display a screen 1256 indicating that the configuration was successful along with a “VIEW SETTINGS” icon button 1258 allowing the installer to view the controller settings. A “BACK” icon button 1260 can be selected if the installer desires to go back and modify or change any settings. A “DONE” icon button 1262, in turn, can be selected by the installer to return the controller to normal operation.

Referring back to FIG. 13A, if the installer desires to configure only selective components of the system, or prefers to enter configuration information in an order different than that generated by the interview question generator, the installer may select the “COMPONENT BASED SET-UP” icon button 1208 on the main installation menu screen 1202. When selected, the interface 1200 can be configured to display a component selection screen 1264, allowing the installer to select from among several different categories of equipment for configuration, as shown in FIG. 13J. The component selection screen 1264 can include, for example, a “HEATING” icon button 1266, a “COOLING” icon button 1268, a “VENTILATION” icon button 1270, a “FILTRATION” icon button 1272, a “UV LAMP” icon button 1274, a “HUMIDIFICATION” icon button 1276, and a “DEHUMIDIFICATION” icon button 1278. The icon buttons can correspond, for example, to the system components described above with respect to FIG. 9, although other combinations of system components are contemplated. An “OTHER” icon button 1280 provided on the screen 1264 can be selected by the installer to configure other system components such as any sensors or other connected controllers, if desired.

The selection of the icon buttons on the component selection screen 1264 causes the interface 1200 to display one or more interview questions and answers on the display panel 1204 based on the type of equipment to be configured. If, for example, the installer desires to configure only the heating and cooling system components, the installer may select both the “HEATING” icon button 1266 and “COOLING” icon button 1268 on the screen 1264, causing the user interface 1200 to present only those interview questions that pertain to heating and cooling control. The process of providing the installer interview questions and answers in multiple-choice format can then be performed in a manner similar to that described above with respect to FIGS. 13C-13H. If desired, the process can be performed for any other system component or components to be configured.

The present invention should not be considered limited to the particular examples described above, but rather should be understood to cover all aspects of the invention as fairly set out in the attached claims. Various modifications, equivalent processes, as well as numerous structures to which the present invention can be applicable will be readily apparent to those of skill in the art to which the present invention is directed upon review of the instant specification. 

What is claimed is:
 1. An HVAC controller, comprising: a user interface; a memory for storing an HVAC schedule, wherein the HVAC schedule includes a number of schedule parameters including time parameters related to two or more time periods, and a number of temperature parameters related to one or more temperature set points for each of the two or more time periods; a controller operatively coupled to the memory and the user interface, the controller configured to provide one or more control signals to control, at least in part, one or more HVAC components of an HVAC system in accordance with the HVAC schedule; the controller further configured to execute a guided programming routine, wherein the guided programming routine is configured to: display one or more first solicitations via the user interface that solicit sufficient information to divide the HVAC schedule into two or more different groups; accept a user response to each of the one or more first solicitations; divide the HVAC schedule into two or more different groups based on the user response to the one or more first solicitations; once the HVAC schedule is divided into two or more different groups, and for each of the two or more different groups, display one or more second solicitations via the user interface that solicit specific times and/or temperature set points; accept a user response to each of the one or more second solicitations for each of the two or more different groups; and the controller is further configured to determine one or more schedule parameters of the HVAC schedule from the accepted user responses to the one or more first and second solicitations, and to update the schedule parameters in the memory, resulting in an updated HVAC schedule.
 2. The HVAC controller of claim 1, wherein the number of schedule parameters include time parameters related to one or more time periods for each of at least two days of a week, and wherein the one or more first solicitations solicit sufficient information to divide the at least two days of the week of the HVAC schedule into two or more different day groups.
 3. The HVAC controller of claim 2, wherein the one or more first solicitations solicit whether all weekdays should be grouped together.
 4. The HVAC controller of claim 2, wherein the one or more first solicitations solicit whether both weekend days should be grouped together.
 5. The HVAC controller of claim 2, wherein the one or more first solicitations solicit whether both weekend days should be grouped separately.
 6. The HVAC controller of claim 2, wherein the one or more first solicitations solicit whether all weekdays should be grouped together in a first group, and both weekend days should be grouped together in a second group.
 7. The HVAC controller of claim 1, wherein the controller uses the specific times and/or temperature set points solicited by the one or more second solicitations for each group to determine one or more schedule parameters for that group.
 8. The HVAC controller of claim 7, wherein each group comprises one or more days, and the controller applies the same one or more schedule parameters to each day of a group.
 9. The HVAC controller of claim 1, wherein once the HVAC schedule is divided into two or more different groups: display one or more second solicitations via the user interface that solicit specific times for a first/next group of the two or more different groups; accept a user response to each of the one or more second solicitations that solicit specific times for the first/next group; display one or more second solicitations via the user interface that solicit temperature set points for the first/next group of the two or more different groups; accept a user response to each of the one or more second solicitations that solicit temperature set points for the first/next group; and repeat for each of the two or more groups.
 10. The HVAC controller of claim 1, wherein the HVAC controller is a programmable thermostat having a housing, with an internal temperature sensor positioned within housing.
 11. The HVAC controller of claim 1, wherein the HVAC controller is configured to send one or more control signals to control the one or more HVAC components of the HVAC system in accordance with the updated HVAC schedule.
 12. An HVAC controller, comprising: a user interface; a memory for storing an HVAC schedule, wherein the HVAC schedule includes two or more days, each day having a number of schedule parameters including time parameters related to two or more time periods and a number of temperature parameters related to one or more temperature set points for each of the two or more time periods; a controller operatively coupled to the memory and the user interface, the controller configured to provide one or more control signals to control, at least in part, one or more HVAC components of an HVAC system in accordance with the HVAC schedule; the controller further configured to execute a guided programming routine, wherein the guided programming routine is configured to: display one or more first solicitations via the user interface that solicit sufficient information to divide the two or more days of the HVAC schedule into two or more different day groups; accept a user response to each of the one or more first solicitations; divide the two or more days of the HVAC schedule into two or more different day groups based on the user response to the one or more first solicitations; once the two or more days of HVAC schedule are divided into two or more different day groups, and for each of the two or more different day groups, display one or more second solicitations via the user interface that solicit specific times and/or temperature set points; accept a user response to each of the one or more second solicitations for each of the two or more different day groups; and the controller is further configured to determine one or more schedule parameters for each of the two or more days of the HVAC schedule from the accepted user responses to the one or more first and second solicitations, and to update the schedule parameters in the memory, resulting in an updated HVAC schedule.
 13. The HVAC controller of claim 12, wherein the one or more first solicitations solicit whether all weekdays should be grouped together.
 14. The HVAC controller of claim 12, wherein the one or more first solicitations solicit whether both weekend days should be grouped together.
 15. The HVAC controller of claim 12, wherein the one or more first solicitations solicit whether both weekend days should be grouped separately.
 16. The HVAC controller of claim 12, wherein the one or more first solicitations solicit whether all weekdays should be grouped together in a first group, and both weekend days should be grouped together in a second group.
 17. The HVAC controller of claim 12, wherein the controller uses the specific times and/or temperature set points solicited by the one or more second solicitations for each day group to determine the one or more schedule parameters for those days in that day group.
 18. A method of programming a programmable schedule of a building controller having a user interface including a display screen, the programmable schedule stored in a memory and having two or more programmable set points, with each set point having a time parameter and a corresponding set point parameter, the method comprising the steps of: activating a guided programming routine via the user interface of the building controller, wherein once activated: displaying One or more first solicitations via the user interface that solicit sufficient information to divide the programmable schedule into two or more different groups; accepting a user response to each of the one or more first solicitations; dividing the programmable schedule into two or more different groups based on the user response to the one or more first solicitations; once the programmable schedule is divided into two or more different groups, and for each of the two or more different groups, displaying one or more second solicitations via the user interface that solicit specific time parameters and/or set point parameters; accepting a user response to each of the one or more second solicitations for each of the two or more different groups; determining two or more of the programmable set points of the programmable schedule from the accepted user responses to the one or more first and second solicitations, and to update the two or more of the programmable set points in the memory, resulting in an updated programmable schedule; and sending one or more control signals to control a building control system in accordance with the updated programmable schedule.
 19. The method of claim 18, wherein the programmable schedule includes two or more days, with each day having one or more programmable set point, and wherein the programmable schedule is divided into two or more groups of days based on the user response to the one or more first solicitations. 